<?php
namespace app\api\model;

use think\Model;
use think\exception\ValidateException;

class AppConfig extends Model
{
    // 表名
    protected $name = 'app_config';

    public static function selectData($appid)
    {
        return self::where(['appid' => $appid])->find();
    }

    /**
     * 扣除余额、增加余额
     * inc_dec：1增加 -1扣除
     */
    public function doBalance($param,$inc_dec)
    {

        if (empty($param['appid'])&&empty($param['id'])){
                return  result_error('缺少必要更新条件');
        }

        if (empty($inc_dec)){
                return  result_error('请确认操作增/减');
        }

        try {
            validate([
                'money'  => 'require', //金额（分）
            ])->message([
                'money.require'  => 'money必须传递',    
            ])->check($param);
        } catch (ValidateException $e) {
            return result_error($e->getError());
        }

        // 创建
        try {
              $find = $this
                    ->when(isset($param['appid']),function ($query) use($param) {
                        $query->where('appid', $param['appid']);
                    })
                    ->when(isset($param['id']),function ($query) use($param) {
                        $query->where('id', $param['id']);
                    })
                    ->find();
            if (!$find){
                 return  result_error('未查询到订单');
            }  

            if($inc_dec==1){//增加余额
                $result=$find->setInc('balance', $param['money']);

            }elseif($inc_dec==-1){//扣除余额
               $result=$find->setDec('balance', $param['money']);
 
            }


            if ($result) {
                return result_success('success',$result);
            } else {
                return result_error('保存失败');
            }
        } catch (\Exception $e) {
             return result_error($e->getMessage());
        }
    }
}